<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id="btn">发送Ajax请求</button>
    <script type="text/javascript">
        var btn = document.getElementById('btn');

        btn.onclick = function() {
            // 1.创建ajax对象
            var xhr = new XMLHttpRequest()
                // 2.告诉Ajax对象要向哪发送请求，以什么方式发送请求
                // (1)请求方式 (2)请求地址
            xhr.open('get', 'http://localhost:3000/error');
            // 3.发送请求
            xhr.send();
            // 4.获取服务器端响应到客户端的数据
            xhr.onload = function() {
                    // xhr.status 获取http状态码
                    console.log(xhr.responseText);
                    // console.log(xhr.status);
                    if (xhr.status == 400) {
                        alert('请求出错')
                    }
                }
                // 当网络中断时辉触发onerror事件
            xhr.onerror = function() {
                alert('网络中断，无法发送Ajax请求')
            }
        }

        // Ajax状态码：表示Ajax请求的过程状态 ajax对象返回
        // HTTP状态码：表示请求的处理结果 是服务器端返回的

        // 1. 网络畅通，服务器端能接收到请求，服务器端返回的结果不是预期结果
        // 可以判断服务器端返回的状态码，分别进行处理。xhr.status获取http状态码

        // 2.网络畅通，服务器端没有接收到请求，返回404状态码。
        // 检查请求地址是否错误

        // 3.网络畅通，服务器端能接收到请求，服务器端返回500状态码
        // 服务器端错误，找后端程序进行排错

        // 4. 网络中断，请求无法发送到服务器端
        // 会触发xhr对象下面的onerror事件,在onerror事件处理函数中对错误进行处理。
    </script>
</body>

</html>